Skip to content

grpc/server: fork client call options - #2813

Merged
arjan-bal merged 2 commits into
grpc:masterfrom
arjan-bal:fork-call-details
Aug 18, 2026
Merged

grpc/server: fork client call options#2813
arjan-bal merged 2 commits into
grpc:masterfrom
arjan-bal:fork-call-details

Conversation

@arjan-bal

Copy link
Copy Markdown
Contributor

Currently, the server::Handle::handle() method accepts client::CallOptions. However, server-side options are distinct from client-side options and should not share the same struct. This PR introduces a dedicated server::CallOptions struct for the server APIs.

@arjan-bal
arjan-bal requested review from dfawley and sauravzg and removed request for dfawley August 18, 2026 09:29
@arjan-bal arjan-bal changed the title grpc/server: fork call options grpc/server: fork client call options Aug 18, 2026
@arjan-bal arjan-bal assigned arjan-bal and unassigned dfawley and sauravzg Aug 18, 2026
@arjan-bal
arjan-bal merged commit 1f07231 into grpc:master Aug 18, 2026
27 checks passed
@arjan-bal
arjan-bal deleted the fork-call-details branch August 18, 2026 12:43

@dfawley dfawley left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I missed this one yesterday.. On the client, call options allow the application to configure the call. On the server, though, this doesn't really make sense, and the current struct is empty. Should this concept just be removed entirely instead? I think we were going to pass all the out-of-band stuff related to the call (e.g. the deadline) via a task-local context?

@sauravzg

Copy link
Copy Markdown
Contributor

So, we can probably try to keep it explicit in the generic API(like we do with RequestHeaders right now) to keep things simple. Our codegen will be responsible for creating the tasklocal when calling the application handler .

We could alternatively remove both CallOptions and RequestHeaders in favour of a tasklocal context from the generic API itself.

@dfawley

dfawley commented Aug 20, 2026

Copy link
Copy Markdown
Member

That's a good point; we can probably make everything explicit, and that should be fine. But then what else is going into the client side or the server side that makes them distinct? The only existing field is deadline which does apply to both. So why are we splitting this now?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants